﻿using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Dexter.Web.Mvc.ViewModel.Resources;

namespace Dexter.Plugins.SelectiveTwitter.Binder {
	public class SelectiveTwitterConfigurationBinder {
		[UIHint("LargeTextbox")]
		[DisplayName("Twitter Name (ex @imperugo)")]
		[Required(ErrorMessageResourceType = typeof (Errors), ErrorMessageResourceName = "RequiredField")]
		public string TwitterName { get; set; }

		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public bool CreateRecapPost { get; set; }

		[UIHint("LargeTextboxInt")]
		[DisplayName("Tweet fetch frequency")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public int FetchMinutesFrequency { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Page Title")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public string PageTitle { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Page slug")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public string PageSlug { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Sub Page Title")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public string SubPageTitleFormat { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Sub Page slug")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		public string SubPageSlugFormat { get; set; }

		[UIHint("LargeTextbox")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		[DisplayName("Grab hashtag - Use a comma to separate the hashtags with '#'")]
		public string GrabHashTags { get; set; }

		[UIHint("LargeTextbox")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		[DisplayName("Grab mentions - Use a comma to separate the hashtags with '#'")]
		public string GrabMentions { get; set; }

		[UIHint("LargeTextbox")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		[DisplayName("Category name")]
		public string CategoryName1 { get; set; }

		[UIHint("LargeTextbox")]
		[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "RequiredField")]
		[DisplayName("Hashtag 1 - Use a comma to separate the hashtags with '#'")]
		public string HashTags1 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Category 2 name")]
		public string CategoryName2 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Hashtag 2 - Use a comma to separate the hashtags with '#'")]
		public string HashTags2 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Category 3 name")]
		public string CategoryName3 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Hashtag 3 - Use a comma to separate the hashtags with '#'")]
		public string HashTags3 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Category 4 name")]
		public string CategoryName4 { get; set; }

		[UIHint("LargeTextbox")]
		[DisplayName("Hashtag 4 - Use a comma to separate the hashtags with '#'")]
		public string HashTags4 { get; set; }
	}
}